home *** CD-ROM | disk | FTP | other *** search
-
-
-
-
- General Steps in Converting C application to C++
-
-
-
- John Tal - Feb 12, 1992
-
-
-
-
-
-
-
- 1. Create Class Defintion
-
-
-
- 1.1 Identify Private And Protected Members
-
-
-
- Identify all variables which are passed through functions
-
- but are really private to the class. These include:
-
-
-
- o Work Areas
-
- o Head Pointers
-
- o Counters
-
-
-
- Place these in the private or protected class sections.
-
-
-
-
-
- 1.2 Install Public Access To Private Members
-
-
-
- Identify all private or protected class member variables
-
- which interact with the application. All reading or writing
-
- of non-public members should be accomplished by a public
-
- class member function. There should be NO access to non-public
-
- members by the application.
-
-
-
- 1.3 Identify Non-Public Functions
-
-
-
- All functions which are not directly called by the application
-
- should be private or protected.
-
-
-
- 1.4 Modify Class Function Prototypes
-
-
-
- Remove from all functions parameters which are now embodied
-
- by class member data. This includes the same items as
-
- in 1.1.
-
-
-
- 1.5 Create Class Constructor And Descructor
-
-
-
- These can be VOID and NULL functions are whatever is required
-
- by the class. All allocated memory should be freed in the
-
- destructor.
-
-
-
- 1.6 Determine Class Access Within Heirachies
-
-
-
- There will be elementary classes which you will use to build
-
- more sophisticated classes through different methods. Each
-
- method will influence the security and general object access
-
- to be defined. It can also be helpful to distinguish between
-
- what a class contains and what it does in refining class
-
- interfaces.
-
-
-
- 1.6.1 Simple Inclusion
-
-
-
- In this case a class is constructed with other classes as
-
- members.
-
-
-
- 1.6.2 Derived Classes
-
-
-
- This includes the areas of multiple-inheritance and polymorphism.
-
- The derived class will inherit the class attributes of its
-
- parent class(es).
-
-
-
- 1.6.3 Deferentiated Access
-
-
-
- You may discover a situation where you want the application to
-
- be unable to access certain class areas but you want another
-
- class to be able to access all class areas. One solution is
-
- to use a friend modifier (NOT RECOMMENDED, the friend modifier
-
- breaks many object-oriented rules). The best solution may be
-
- to create a server class which will then access others classes
-
- for the application.
-
-
-
-
-
- 2 Modify C Source Code
-
-
-
- 2.1 Rename Or Copy Code
-
-
-
- Rename or copy the c source files from *.c to whichever
-
- extension is used by your C++ compiler (usually *.cpp).
-
-
-
- 2.2 Modify Code Comments
-
-
-
- Comments in the source code can be left in the /* style,
-
- but for those who work in both C and C++, having native
-
- C++ comments in // style makes it easier to switch
-
- between languages.
-
-
-
- 2.3 Modify Functions
-
-
-
- 2.3.1 Modify Function Interface
-
-
-
- Modify function interfaces to no longer pass items such as
-
- in 1.1.
-
-
-
- 2.3.2 Modify Function Comment Header Block
-
-
-
- Modify comment header block to include security of class
-
- member (private, protected, public). Carefully examine
-
- any function who's description includes the words 'and'
-
- or 'or'. These are signs of cohesion problems.
-
- (If a function calculates data AND writes it to disk,
-
- the function should be broken up into two functions,
-
- one to calculate and one to write.)
-
-
-
- 2.3.3 Break Up Functions
-
-
-
- Create new functions from those displaying cohesion or
-
- coupling problems which can be corrected.
-
-
-
- 2.3.4 Create Interface Functions For Class Private Data
-
-
-
- Create functions necessary for an application to read or
-
- write (get/set) data which is in private or public
-
- class security segments.
-
-
-
-
-
-
-
-